import tkinter as tk  
  
class EmbeddedWindow(tk.Frame):  
    def __init__(self, master, title):  
        super().__init__(master, bd=2, relief="ridge")  # 添加边框和凸起效果  
        self.title_label = tk.Label(self, text=title, font=("Helvetica", 12, "bold"))  
        self.title_label.pack(side="top", fill="x", pady=5)  
          
        # 在这里添加你的子窗口内容  
        self.content_label = tk.Label(self, text="这是子窗口的内容")  
        self.content_label.pack(pady=10)  
  
# 创建主窗口  
root = tk.Tk()  
root.title("主窗口")  
root.geometry("1024x768")
  
# 创建菜单栏  
menubar = tk.Menu(root)  
filemenu = tk.Menu(menubar, tearoff=0)  
filemenu.add_command(label="显示子窗口 1", command=lambda: show_frame(embedded_window1))  
filemenu.add_command(label="显示子窗口 2", command=lambda: show_frame(embedded_window2))  
menubar.add_cascade(label="文件", menu=filemenu)  
root.config(menu=menubar)  
  
# 创建两个嵌入的子窗口（Frame）  
embedded_window1 = EmbeddedWindow(root, "子窗口 1")  
embedded_window1.grid(row=0, column=0, sticky="nsew")  
  
embedded_window2 = EmbeddedWindow(root, "子窗口 2")  
embedded_window2.grid(row=0, column=0, sticky="nsew")  
embedded_window2.grid_remove()  # 初始时隐藏第二个子窗口  
  
# 函数用于切换显示哪个子窗口  
def show_frame(frame):  
    embedded_window1.grid_remove()  # 隐藏第一个子窗口  
    embedded_window2.grid_remove()  # 隐藏第二个子窗口  
    frame.grid()  # 显示传入的子窗口  
  
# 使用grid_rowconfigure和grid_columnconfigure确保主窗口可以调整大小  
root.grid_rowconfigure(0, weight=1)  
root.grid_columnconfigure(0, weight=1)  
  
# 运行主循环  
root.mainloop()